CentOS7 搭建Git服务器

1.在服务器上创建一个新用户

1
adduser git

给git账号创建密码

1
2
3
4
5
6
passwd git
更改用户 git 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

2.创建一个Git仓库

1
2
3
cd /data/git //切换到希望创建工作区的目录
git init --bare sample.git //创建一个Git仓库,此时Git会创建一个唯一分支master
chown -R git:git sample.git//将sample.git的所有权从root修改到新创建的git

3.在服务器端打开RSA认证

在文件/etc/ssh/sshd_config中添加下列三行内容:

1
2
3
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

创建用于存放客户端公钥的文件

1
2
3
cd /home/git //切换到刚刚创建的git用户目录下
mkdir .ssh
vim authorized_keys //创建用于存放客户端公钥的文件

4.在客户端创建SSH key

SSH key 可以让你在你的电脑和Code服务器之间建立安全的加密连接。 先执行以下语句来判断是否已经存在本地公钥:

1
cat ~/.ssh/id_rsa.pub

如果你看到一长串以 ssh-rsa或 ssh-dsa开头的字符串, 你可以跳过 ssh-keygen的步骤。
提示: 最好的情况是一个密码对应一个ssh key,但是那不是必须的。你完全可以跳过创建密码这个步骤。请记住设置的密码并不能被修改或获取。
你可以按如下命令来生成ssh key:

1
ssh-keygen -t rsa -C "email@163.com"

这个指令会要求你提供一个位置和文件名去存放键值对和密码,你可以点击Enter键去使用默认值。
用以下命令获取你生成的公钥:

1
cat ~/.ssh/id_rsa.pub

复制这个公钥放到你的个人设置中的SSH/My SSH Keys下,请完整拷贝从ssh-开始直到你的用户名和主机名为止的内容。
如果打算拷贝你的公钥到你的粘贴板下,请参考你的操作系统使用以下的命令:
Windows:

1
clip < ~/.ssh/id_rsa.pub

Mac:

1
pbcopy < ~/.ssh/id_rsa.pub

GNU/Linux (requires xclip):

1
xclip -sel clip < ~/.ssh/id_rsa.pub

5.把步骤4生成的公钥导入服务器

将生成的id_rsa.pub中的内容拷贝到服务器文件/home/git/.ssh/authorized_keys

6.在客户端clone远程git仓库

1
2
3
git clone git@115.28.222.133:/data/git/sample.git
其中115.28.222.133是服务器端的IP地址
(由于进行了步骤4和步骤5的设置,所以在clone仓储的时候就无需再输入密码了)

7.禁止用户git通过shell进行登录

由于进行了步骤4和步骤5的设置,此时客户端可以通过ssh git@115.28.222.133 直接登录到服务器,如需禁止,修改文件/etc/passwd:

1
2
将git:x:1000:1000::/home/git:/bin/bash
修改为:git:x:1000:1000::/home/git:/usr/bin/git-shell

初始化master分支

在进行了一个commit操作后,master分支就会出现,此时执行git push就可以将本地的修改推送到远程的master分支了.

至此远程git服务器搭建完毕!

坚持原创技术分享,您的支持将鼓励我继续创作!